﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Text;
using System.ComponentModel;
using System.Runtime.Serialization;

namespace elr_tracking_bal.POM
{
    public class POM : INotifyPropertyChanged
    {
        private int _ID_POM;
        private DateTime _FECHA_POM;
        private int _UNID_COTIZACION; //cambiar 
        private int _ID_EMPRESA_FACTURA_A; //cambiar
        private int _DIAS_ENTREGA;
        private DateTime _FECHA_ENTREGA;
        private DateTime _FECHA_ENTREGA_REAL;
        private int  _PROVEEDOR;
        private int _ID_EMPRESA_EMBARQUE_A;
        private string _SERIAL;

        public POM( DateTime FECHA_POM, int COTIZACION, int EMPRESAF, int DIAS, DateTime FECHA_ENT, DateTime FECHA_REAL, int PROVEEDOR, int EMPEMBARQUE, string SERIAL)
        {
            
            this._FECHA_POM = FECHA_POM;
            this._UNID_COTIZACION = COTIZACION;
            this._ID_EMPRESA_FACTURA_A = EMPRESAF;
            this.DIAS_ENTREGA = DIAS;
            this._FECHA_ENTREGA = FECHA_ENT;
            this._FECHA_ENTREGA_REAL = FECHA_REAL;
            this._PROVEEDOR = PROVEEDOR;
            this.ID_EMPRESA_EMBARQUE_A = EMPEMBARQUE;
            this._SERIAL = SERIAL;
        }

        public POM(int ID_POM, DateTime FECHA_POM, int COTIZACION, int EMPRESAF, int DIAS, DateTime FECHA_ENT, DateTime FECHA_REAL, int PROVEEDOR, int EMPEMBARQUE, string SERIAL)
        {
            this._ID_POM = ID_POM;
            this._FECHA_POM = FECHA_POM;
            this._UNID_COTIZACION = COTIZACION;
            this._ID_EMPRESA_FACTURA_A = EMPRESAF;
            this.DIAS_ENTREGA = DIAS;
            this._FECHA_ENTREGA = FECHA_ENT;
            this._FECHA_ENTREGA_REAL = FECHA_REAL;
            this._PROVEEDOR = PROVEEDOR;
            this.ID_EMPRESA_EMBARQUE_A = EMPEMBARQUE;
            this._SERIAL = SERIAL;
        }

        public static int InsertPOM(POM pom)
        {
            try
            {
                int id_Pom = 0;
                DataTable dt = elr_tracking_dal.SrvDB.ExecuteQuery("exec dbo.SP_INSERT_POM_POM '" + pom.FECHA_POM.ToString("MM/dd/yyyy") + "'," +  pom.ID_EMPRESA_FACTURA_A + "," + pom.DIAS_ENTREGA
                    + ",'" + pom.FECHA_ENTREGA.ToString("MM/dd/yyyy") + "','" + pom.FECHA_ENTREGA_REAL.ToString("MM/dd/yyyy") + "'," + pom.PROVEEDOR + "," + pom.ID_EMPRESA_EMBARQUE_A + ",'" + pom.SERIAL + "'");

                   for (int x = 0; x < dt.Rows.Count; x++)
                   {
                       id_Pom = Convert.ToInt32(dt.Rows[x][0]);
                   }
                   return id_Pom;
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

        public int ID_POM
        {
            get
            {
                return _ID_POM;
            }
            set
            {
                if (_ID_POM != value)
                {
                    _ID_POM = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("ID_POM"));
                    }
                }
            }
        }

        public int UNID_COTIZACION
        {
            get
            {
                return _UNID_COTIZACION;
            }
            set
            {
                if (_UNID_COTIZACION != value)
                {
                    _UNID_COTIZACION = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("UNID_COTIZACION"));
                    }
                }
            }
        }

        public int ID_EMPRESA_FACTURA_A
        {
            get
            {
                return _ID_EMPRESA_FACTURA_A;
            }
            set
            {
                if (_ID_EMPRESA_FACTURA_A != value)
                {
                    _ID_EMPRESA_FACTURA_A = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("ID_EMPRESA_FACTURA_A"));
                    }
                }
            }
        }

        public DateTime FECHA_POM
        {
            get
            {
                return _FECHA_POM;
            }
            set
            {
                if (_FECHA_POM != value)
                {
                    _FECHA_POM = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("FECHA_POM"));
                    }
                }
            }
        }

        public DateTime FECHA_ENTREGA
        {
            get
            {
                return _FECHA_ENTREGA;
            }
            set
            {
                if (_FECHA_ENTREGA != value)
                {
                    _FECHA_ENTREGA = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("FECHA_ENTREGA"));
                    }
                }
            }
        }

        public DateTime FECHA_ENTREGA_REAL
        {
            get
            {
                return _FECHA_ENTREGA_REAL;
            }
            set
            {
                if (_FECHA_ENTREGA_REAL != value)
                {
                    _FECHA_ENTREGA_REAL = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("FECHA_ENTREGA_REAL"));
                    }
                }
            }
        }

        public int DIAS_ENTREGA
        {
            get
            {
                return _DIAS_ENTREGA;
            }
            set
            {
                if (_DIAS_ENTREGA != value)
                {
                    _DIAS_ENTREGA = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("DIAS_ENTREGA"));
                    }
                }
            }
        }

        public int PROVEEDOR
        {
            get
            {
                return _PROVEEDOR;
            }
            set
            {
                if (_PROVEEDOR != value)
                {
                    _PROVEEDOR = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("PROVEEDOR"));
                    }
                }
            }
        }

        public int ID_EMPRESA_EMBARQUE_A
        {
            get
            {
                return _ID_EMPRESA_EMBARQUE_A;
            }
            set
            {
                if (_ID_EMPRESA_EMBARQUE_A != value)
                {
                    _ID_EMPRESA_EMBARQUE_A = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("ID_EMPRESA_EMBARQUE_A"));
                    }
                }
            }
        }

        public string SERIAL
        {
            get
            {
                return _SERIAL;
            }
            set
            {
                if (_SERIAL != value)
                {
                    _SERIAL = value;
                    if (this.PropertyChanged != null)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("SERIAL"));
                    }
                }
            }
        }
        public event PropertyChangedEventHandler PropertyChanged;
    }
}
